IModel Interface
- GetEntityCount
 
- GetEntity
 
- Save
 
- Update
 
- GetModelPath
 
- GetItemCount
 
- GetItem
 
 
See also IModel2, Interface List, 
Patch Programming Tutorial, 
MiniCAD Sample 
 
HRESULT GetEntityCount(int *pnCount)  
Parameters 
pnCount - [out] pointer to an
integer variable
which will receive the number of objects in the model.  
 Returns  
  - S_OK in case of 
  success.
  
Remarks: 
 
The method returns number of top-level objects (entities) in the model. 
 
HRESULT GetEntity(int index, ISection **ppIEntity)       
Parameters 
index 
- [in] zero-based index of the object.  
ppIEntity - [out] returned pointer to the 
interface.  
Return Values  
  - S_OK in case of 
  success. 
  
-     
  
- DISP_E_BADINDEX - if index is greater than or equal to the number of
    objects in the model 
  
-  
  
- Remarks: 
  
-  
 
  - Returns pointer to ISection Interface of the index--th top-level object in the 
  model. Each interface obtained with a call to this method must be released
    with a call to Release() method of the obtained interface, when it is no
    longer needed.
       
 
HRESULT Save(char* szFilePath)    
Parameters 
szFilePath -[in] path of the model file.  
Return Values 
  - S_OK in case of success. 
 
  -   
  DISP_E_PARAMNOTOPTIONAL - if szFilePath   is NULL. 
  
- 
  ERROR_FILE_NOT_FOUND - if there was a failure during saving
    the file.
   
  
  -  
 
  - Remarks 
  
-  
  
  - Returns pointer to ISection Interface of the index-th object in the 
  model. Call Release() on the obtained interface when you have finished to use 
  it.
    
  
   
  
  HRESULT Update()    
  Return Values 
S_OK in case of success.  
DI_E_INVALIDGEOMETRY - In case the most recent changes where not 
accepted because they make the geometry of the model invalid. 
definition of DI_E_INVALIDGEOMETRY can be found in file DIError.h of Samples\Include folder of the 
installation directory. 
- Remarks: 
 
 
This method is equivalent to UpdateSurface
 of the DG Kernel control with the exception that it does not redraw the
control's window automatically. To redraw the window, some method of the
particular environment like System.Windows.Forms.Control.Update in .NET or
CWnd::Invalidate() and CWnd::UpdateWindow() in MFC has to be called. 
See MiniCAD sample 
- The method recalculates the surface of the model after any changes to
  parameters of the 
model. This method or UpdateSurface
  above has to be called after a sequence or a single modification of
  the models parameters, which affect shape of the object. Most commonly it is
  done after 
  call(s)  to one of SetParam methods of 
  IElement or IElem  interface.
  In contrast, for example, object movements with  I3DObject do not change internal geometry
  of the object, so the Update method does not have to be called. 
 
 
A valid sequence of modifications should involve only one modification
per parameter. Before making another modification to the same geometrical parameter Update
or UpdateSurface
 has to be called. For example  
    iElemPoint.SetParam(0, 0.5); 
    iElemPoint.SetParam(1, 0.9); 
    iModel.Update(); 
is a valid sequence, but  
    iElemPoint.SetParam(0, 0.5); 
    iElemPoint.SetParam(0, 0.9); 
    iModel.Update(); 
is not. 
Note that this method is costly in terms of computational load, so it is recommended
to call it once per logically complete sequence of user input. 
 
HRESULT GetModelPath(string *path) 
Parameters 
szFilePath - [in] path of the 
model file.  
Return Values 
  S_OK   in case of success. 
            Remarks 
  Returns full resolved model path. This method is particularly useful when 
      the ModelPath property of the DG Kernel component is either not full or has special 
      prefixes 
      See Cloud sample for an example
   
  
HRESULT GetItemCount(int* count) 
  Returns count of top-level non-geometric scene items, which are not entities, 
      i.e. which implement IItem, but not
      ISection interface 
      
       
HRESULT GetItem(int index, IItem** iItem) 
  Returns index-th top-level scene item. 
 
  
                 |